<?php
    require 'datasource/Conexao.php';

    class UsuarioDAO
    {
        public function criarUsuario(Usuario $usuario)
        {            
            $conexao = Conexao::getInstance()->getConnection(); //Abrindo a conexão com o banco de dados.
            $query = "insert into usuarios(login, senha, status) values('$usuario->login','$usuario->senha','$usuario->status')"; //SQL para cadastrar um novo usuário no banco de dados.
            $conexao->query($query); //Executa a linha do SQL
			return true;
        }

        public function removerUsuario($id=NULL)
        {
            if (!is_null($id)) {
                
                $conexao = Conexao::getInstance()->getConnection(); //Abrindo a conexão com o banco de dados.
                $query = "delete from usuarios where id = $id"; //SQL para deletar um usuário no banco de dados.
                $conexao->query($query); //Executa a linha do SQL
            }
        }

        public function atualizarUsuario(Usuario $usuario){ 
            $conexao = Conexao::getInstance()->getConnection(); //Abrindo a conexão com o banco de dados.
            $query = "update usuarios set login='$usuario->login', senha='$usuario->senha', status='$usuario->status' where id = $usuario->id"; //SQL para atualizar um usuário no banco de dados.
            $conexao->query($query); //Executa a linha do SQL
        }

        public function obterUsuario($id) { //Obter ID do usúario
            $conexao = Conexao::getInstance()->getConnection(); //Abrindo a conexão com o banco de dados.
            $query = "select * from usuarios where id=$id"; //Verifica se o usuário que está tentando logar esta cadastrado no sistema.
            
                
            if ($result = $conexao->query($query)) {

                $row = $result->fetch();
                $usuario = $this->converterVetorUsuarioObjeto($row);
                return $usuario;
            }
            else {
                return FALSE;
            }
        }

        public function obterListaUsuarios(){
            $conexao = Conexao::getInstance()->getConnection(); //Abrindo a conexão com o banco de dados.
            $query = "select * from usuarios";
            $usuarios = array(); //Atribuindo o array de usuários na variável $usuarios.

            if ($result = $conexao->query($query)) {
                while($row = $result->fetch()) {
                    $usuario = $this->converterVetorUsuarioObjeto($row);
                    $usuarios[] = $usuario;
                }
                
                return $usuarios;
            }
            else {
                return FALSE;
            }
        }

        private function converterVetorUsuarioObjeto($row)
        {
            $usuario = new Usuario();
            $usuario->id = $row['id'];
            $usuario->login = $row['login'];
            $usuario->senha = $row['senha'];
            $usuario->status = $row['status'];

            return $usuario;
        }


    }

?>